<?php
/**
 * 分类管理
 * @author  zlc
 */
namespace app\admin\controller;
use app\common\business\CategoryBus;
use think\facade\View;
class Category extends Common{

    /*
     * 分类列表
     * @return string
     * @throws \Exception
     */
    public function index(){
        $pid = input('param.pid',0,'intval');
        $where = [
            'parent_id'=>$pid
        ];
        try{
            $categoryData = (new CategoryBus())->getList($where,3);
        }catch (\Exception $e){
           $categoryData = [];
        }
        //halt($categoryData);

        return view('index', ['lists' => $categoryData]);
    }

    /*
     * 添加分类
     */
    public function add(){
        try{
            $categorys = (new CategoryBus())->getNormalCategorys();
        }catch (\Exception $e){
            $categorys = [];
        }
//        halt($categorys);
        return View::fetch('',[
            'categorys'=>json_encode($categorys)
        ]);
    }

    /*
     *保存
     */
    public function save(){
        $parent_id = input('param.parent_id',0,'intval');
        $category_name = input('param.category_name','','trim');
        //参数校验
        $data = [
            'parent_id'=>$parent_id,
            'category_name'=>$category_name,
        ];
        $validate = new \app\admin\validate\Category();
        if(!$validate->check($data)){
            return show(config('status.error'),$validate->getError());
        }
        try{
           $result = (new CategoryBus())->add($data);
        }catch (\Exception $e){
            return show(config('status.error'),$e->getMessage());
        }
        if($result){
            return show(config('status.success'),"添加成功");
        } else{
            return show(config('status.error'),"添加失败");
        }

    }

    /*
     * 排序
     */
    public function sort(){
        $id = input('param.id',0,'intval');
        $listOrder = input('param.sort',0,'intval');
        if(!$id){
            return show(config('status.error'),'参数错误');
        }
        try{
            $res = (new CategoryBus())->listOrder($id,$listOrder);
        }catch (\Exception $e){
            return show(config('status.error'),$e->getMessage());
        }
        if($res){
            return show(config('status.success'),'排序成功');

        } else{
            return show(config('status.error'),'排序失败');
        }
        
    }

    /*
     * 修改状态
     */
    public function status(){
        $status = input('param.status',0,'intval');
        $id = input('param.id',0,'intval');
        if(!$id || (!in_array($status,[0,1,99]))){
            return show(config('status.error'),'参数错误');
        }
        try{
            $res = (new CategoryBus())->status($id,$status);
        }catch (\Exception $e){
            return show(config('status.error'),$e->getMessage());
        }
        if($res){
            return show(config('status.success'),'修改成功');

        } else{
            return show(config('status.error'),'修改失败');
        }

    }
    
}
